import java.util.*;
/**
 * Created with IntelliJ IDEA.
 * Description: 连续最大和
 */
public class Test2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()) {
            int n = sc.nextInt();
            long max = 0;
            long sum = 0;
            for(int i = 0; i < n; i++) {
                int num = sc.nextInt();
                //刚开始,max要赋值为第一个元素，因为有可能整个数组都是负数
                if(i == 0) {
                    max = num;
                }else if(num > max) {
                    max = num;
                }
                //只要数组中的连续元素之和 >= 0，那么就有可能 + 下一个元素超过现有的最大值
                //这里要注意，假如sum == 0时，第一个元素 < 0，那么就没有加的必要
                if(sum + num >= 0) {
                    sum += num;
                    if(sum > max) {
                        max = sum;
                    }
                }else {
                    sum = 0;
                }
            }
            System.out.println(max);
        }
    }
}
